The virtual explosion of technical advances in microelectronics, digital computers and software have changed the face of modern society. In fact, these technological advances have become so important and pervasive that this explosion is sometimes referred to as "the information revolution." Through telephone lines, networks, satellite communications and the like, information and resources are ever increasingly being accessed and shared.
When a group of computers are connected to one another, such as in a client/server network, a management service is typically used to organize and administer information and resources across the network. Management services usually access or include a collection of objects that represent a variety of things. For instance, some typical objects represent users, groups, printers, computers, and the like. Objects in a management service are often organized in flat domains such as the SECURITY ACCOUNTS MANAGER ("SAM") of WINDOWS NT, in a distributed directory such as NOVELL DIRECTORY SERVICES ("CNDS") of NETWARE or ACTIVE DIRECTORY SERVICES ("ADS") of WINDOWS NT, or in other ways known in the art.
Often, it is desirable that two or more objects have synchronized information. The implementation of catalog services illustrates one example of this arrangement. Catalog services provides a database, sometimes referred to as a catalog, of information about the management service. For instance, the catalog typically contains information relating the various objects and values within the management service. One advantage of a catalog is that one can search the management service through the catalog, which is usually stored locally, thus eliminating the need to traverse all the computers sharing the management service. Ordinarily, an object in the management service represents the catalog. The catalog itself is usually stored as a value in an associated attribute of that object. Since the catalog can be accessed and searched most efficiently when it is stored locally, any computer (typically a server) which will use the catalog preferably has a catalog object. Preferably, the catalogs associated with each of the catalog objects are synchronized so that a search on one catalog will return the same results as all the other catalogs.
Some management services allow for objects to have replicas. Typically, when a change is detected in one object, a replication system will detect and replicate the change to the replicas of that object However, in some situations replication systems are ill-suited to synchronize information, particularly when large amounts of data need to be transmitted. For instance, a catalog can be a very large database. If the replication system were to take its natural course in replicating a change to a catalog, network traffic could be inundated and slowed as the large database is routed through the network. Such a transfer could slow other unrelated network traffic or otherwise negatively effect other services in the computer network.
Replication systems are also ill-suited in some situations to synchronize data by virtue of their organization. Replication systems often work on a partition basis. A partition comprises a block of objects organized into logical groups. Multiple replicas or copies of a partition can be distributed on various servers on the network. Partitions help organize the management service and give the ability to scale the management service across the network, distributing the workload for each of the servers. Partitions are typically transparent to the users and background processes allow the partitions to work in cooperation. As such, any object in the management service could be accessed, however, locally stored objects can be accessed more efficiently. Therefore, a server which regularly accesses a given object will preferably hold a replica of the partition from which the object belongs.
Building on the catalog services illustration, for a computer to have a copy of the catalog object, that computer would need a copy of the entire partition within which the catalog object resides. As such, that computer would necessarily hold all the other objects in the partition, even if that computer does not require access to those other objects, thus wasting network resources. In the past, network administrators have attempted to overcome this problem by defining a separate partition dedicated only to the catalog object, but this arrangement results in the catalog object being placed in a counter-intuitive location relative to the other objects, thus defeating the organizational structure of the management service and the partitions.
Therefore, there is a need for a method and apparatus for synchronizing information without the attendant problems in the prior art.